#include "functions.h"





/*
PARAMETRY FUNKCJI INICJALIZUJACEJ SDL
-szerokosc okna
-wysokosc okna
-czy fullscreen
-glebia kolorow
-wskaznik na pow ekranu
-tytul okna
*/
bool init(int width,int height,bool fullscr,int bpp,SDL_Surface *(&screen), std::string caption="Program")
{
	
	//extern SDL_Surface *screen;//import wskaznika ekranu:)

	if(SDL_Init(SDL_INIT_EVERYTHING)==-1)return false;

	if(TTF_Init()==-1)return false;


	//Initialize SDL_mixer 
	if( Mix_OpenAudio( 22050, MIX_DEFAULT_FORMAT, 2, 4096 ) == -1 ) { return false; } 

	if(fullscr)screen=SDL_SetVideoMode(width,height,bpp,SDL_FULLSCREEN | SDL_SWSURFACE);
	else screen=SDL_SetVideoMode(width,height,bpp,SDL_SWSURFACE);
	if(screen==NULL)return false;


	SDL_WM_SetCaption(caption.c_str(),NULL);



	
	return true;
}


/*
RYSOWANIE SPRITE'A NA EKRANIE
-x,y-wsp na ekranie  gdzie ma byc wyswietlony sprite
-bmp wskaznik do sprite'a
-scr wskaznik do powierzchni ekranu
*/
void drawbitmap(int x, int y,SDL_Surface * bmp,SDL_Surface *scr)
{

	SDL_Rect dest;
	dest.x=x;
	dest.y=y;

	SDL_BlitSurface(bmp,NULL,scr,&dest);



}


//LADOWANIE OBRAZKA
//-name nazwa/sciezka do pliku
//zwracany wskaznik do sprite'a lub NULL gdy niepowodzenie
SDL_Surface * loadbitmap (std::string name)
{
	SDL_Surface *tmp1=NULL;
	SDL_Surface *tmp2=NULL;

	tmp1=IMG_Load(name.c_str());


	if(tmp1!=NULL)
	{
		tmp2=SDL_DisplayFormatAlpha(tmp1);
		SDL_FreeSurface(tmp1);



	}

	return tmp2;
}


//WYCHODZENIE Z SDL
void quit()
{
	Mix_CloseAudio(); 
	TTF_Quit();
	SDL_Quit();
}

/*
WYSWIETLENIE TEXTU NA POWIERZCHNIE
-text do wyswietlenia
-pozycja x,y
-wskaznik na powierzchnie
-kolor w rgb
-wskaznik na czcione
-rozmiar czcionki
*/

void write(std::string text,SDL_Surface * destination,int xx=0,int yy=0,int rcolor=0,int gcolor=0,int bcolor=0,TTF_Font *font=NULL,int fontsize=20)
{
	bool fontloaded=true;
	if(font==NULL)
	{
		font=TTF_OpenFont("czcionki/MTCORSVA.TTF",fontsize);
		fontloaded=false;
	}

	SDL_Color col;
	col.b=bcolor;
	col.g=gcolor;
	col.r=rcolor;

	SDL_Surface * renderedtext=TTF_RenderText_Solid(font,text.c_str(),col);

	drawbitmap(xx,yy,renderedtext,destination);
	if(!fontloaded)TTF_CloseFont(font);
}



